A particular area within video coding relates to concerns how to manage streaming of videos, or video files, from a server unit to a client device. The server unit may be hosted by a content provider, which offers videos for streaming to client devices, either for free or at a charge. The videos may be provided from a real time source or from a storage device, such as a disc drive or the like.
In this context, bitrate of the video is relevant for the experience of a user receiving a video at a client device. If the bitrate is high, the experience may be good under the condition that a connection between the client device and the server unit is capable of feeding the stream to the client device without interruptions etc. This means that a throughput of the connection is sufficiently high. Expressed differently, a bandwidth of the connection is sufficiently high. On the other hand, the experience may be good even if the bitrate is low. For example, the experience may be rated good for a lower bitrate, in cases where a stream at a higher bitrate would be exposed to interruptions, since the interruptions may typically worsen the experience for the user.
In order to adapt the bitrate to a currently available throughput in a computer/telecom network, so called Adaptive Bit Rate (ABR) video can be used. Hence, the currently available throughput for a particular user is measured and then the bitrate of the video, to be streamed to the particular user, is adjusted accordingly. An adjustment of the bitrate to a higher bitrate leads to that higher throughput is required, and an adjustment of the bitrate to a lower bitrate leads to that a lower throughput would be sufficient.
An example of ABR is Moving Pictures Expert Group (MPEG)—Dynamic Adaptive Streaming over HTTP (DASH), where HTTP is short for HyperText Transfer Protocol. In e.g DASH, the video is stored in the server unit in different segments of a certain media length, e.g. a length in seconds, minutes etc. For each segment a number of different video files, corresponding to different media rates are available at the server unit. At initial request of a video from the client device, the server unit first responds with a manifest file telling the client device what is the used segment length for this video and which different media rates that are available.
Usually, the client device request the first segment at the lowest available media rate as the client device do not have any understanding of the available throughput before any transmission has occurred. During reception of the first segment, the client device can start to estimate the available throughput, e.g. through measuring the time it took to download that first segment. Based on the estimated throughput, the client device will then for consecutive segments request segments with media rate slightly below the estimated throughput, in order to try to avoid buffer under-run, i.e. in the client device's buffer for video to be output at e.g. a screen or the like. Buffer under-run occurs when the client device empties its buffer for video to be output, i.e. the buffer is emptied faster than it is filled. This can e.g. happen when the throughput of the above mentioned connection is not sufficiently high.
Estimations of available throughput for a client device exhibit some limitations.
First, the estimation can only be based on periods for which video files are actually transmitted to the client device. This makes it hard to correctly estimate fast changes in available throughput, e.g. due to fast changes in radio environment in a wireless network.
Secondly, the client device only has the understanding of the currently available throughput for itself. In a wireless network, the available throughput over a radio link is shared among a plurality of client devices. This can lead to oscillations between several bitrates for video when the plurality of client devices attempt to adjust bitrate of received video streams.
To overcome these limitations, it has been proposed that a network node recommends a bitrate in order to guide in adaption of the bitrate, such as guide in adapting to the currently available throughput as mentioned above. The network node is aware of network factors, such as overall resource and user situation. Thus, the network node can consider these network factors when finding the recommended bitrate.
The available throughput for a user equipment (UE) in a mobile network, such as a Long Term Evolution (LTE) network, changes over time due to various reasons.
Firstly, the UE may move around and may have better or worse radio quality depending on the distance to a serving cell of the LTE network.
Secondly, even if the UE is stationary, the radio quality can change over time as objects, e.g. cars, buses, other user equipments, in the environment move.
Thirdly, a number of active user equipments in the serving cell may change and result in changes of an available throughput.
Finally, the UE may be handed over to another cell, with different number of active user equipments, and different radio qualities (conditions). This also results in change of available throughput.
The aforementioned ABR manages selection of bitrate by detecting a UE's available throughput, or throughput, in real time. Then, the ABR caters for adjustment of quality of a video stream, received by the UE, while taking the available throughput into account. In more detail, the bitrate of the video stream is adjusted. However, in case of the mobile network above, the UE's available throughput changes faster and more frequent than in wired computer networks, i.e. computer networks that does not provide wireless connections and mobility of client devices. Thus, ABR may need to update the bitrate of the video stream frequently, which results in poor experience for the user. The experience for the user is poor because resolution of the video, e.g. in terms of pixel and/or bitdepth of color component for the pixels, changes often due the frequent changes of the bitrate. A problem is hence that a so called Quality of Experience (QoE) is low.
Abstract of CN102811367 discloses adaptive video encoding based on predicted wireless channel conditions. Based on at least one of a number of transmitter side indications of the available throughput of a wireless channel for video delivery, an encoder rate adaptation mechanism generates an estimate of the supportable throughput of the wireless channel under different operating conditions. An encoding parameter, such as encoder bitrate, is subsequently altered based on the estimated throughput value. In one instance, transmitter side throughput indicia is used to generate target encoder bitrates for multiple potential data rates/channel and/or modulation and coding scheme selections that may be used in video delivery. In anticipation of or immediately following a transition to one such data rate and/or modulation and coding scheme selection, the encoder bitrate is altered in accordance with an associated target bitrate. In another mode, average transmit queue latency information is used to further regulate the encoder bitrate. In some scenarios, the encoder bitrate does still not provide a sufficiently good QoE for a user receiving the video delivery. Specifically, frequent changes of bitrate of the video may be a problem.